/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Clases;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 *
 * @author JULIAN
 */
public class validaventa extends HttpServlet {
   
    /** 
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException, SQLException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {

           
            String id_empleado=request.getParameter("id_empleado");
            String id_tipo_pago=request.getParameter("id_tipo_pago");
            String id_cliente=request.getParameter("id_cliente");
            String id_almacen=request.getParameter("almacen");

            int errores=0;

            HttpSession session = request.getSession(true);
            session.setAttribute("clientexi","");
            PreparedStatement st = null;
            SQL_Consultas obj = new SQL_Consultas();
            ResultSet resultado = null;

            obj.setId(id_empleado);
            obj.setAlmacen(id_almacen);

            st=obj.ExisteVendedor();
            resultado=st.executeQuery();

            out.println("<html>");
            out.println("<title>ERROR</title>");
            out.println("<Body Bgcolor=#000000>");

            if(!resultado.next()){
              out.println("<p><font color=white>El vendedor no existe o no corresponde a este almacen</p></font>");
              errores++;
                                 }
            st.close();
            resultado.close();

            obj.setPago(id_tipo_pago);
            st=obj.ValidaTipoPago();/*agregar despues tolower a la consulta */
            resultado=st.executeQuery();

            if(!resultado.next()){
               out.println("<p><font color=white>el tipo de pago no es correcto</p></font>");
               errores++;
                                 }
            else{
            session.setAttribute("id_pago",resultado.getString("id"));
                }
            
             st.close();
             resultado.close();

             obj.setCliente(id_cliente);
             st=obj.ValidaCliente();
             resultado=st.executeQuery();
            if(id_cliente.equals("")){
            out.println("<p><font color=white>no digito nada para el campo documento de cliente, este campo es obligatorio</p></font>");
            errores++;
            }
            if(!resultado.next()){
            session.setAttribute("clientexi","noexiste");
                                 }
            else{            
            session.setAttribute("nombres_cliente",resultado.getString("nombres"));
            session.setAttribute("apellidos_cliente",resultado.getString("apellidos"));
            session.setAttribute("telefono_cliente",resultado.getString("telefono"));
                }
             st.close();
             resultado.close();


            
            if (errores==0){
                session.setAttribute("id_vendedor",id_empleado);
                session.setAttribute("tipo_pago",id_tipo_pago);
                session.setAttribute("id_cliente",id_cliente);
               // session.setAttribute("clienteexi","");
                
                st=obj.GetFechaBD();
                resultado = st.executeQuery();
                resultado.next();

                java.util.Date date = new java.util.Date();
                java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("dd/MM/yyyy");
                String fecha = sdf.format(date);

                session.setAttribute("fechabd", fecha);

                st.close();
                resultado.close();

                response.sendRedirect("venta2.jsp");
                           }
            else{
            out.println("<input type=button style=Position:Absolute; left:20%; top:30% value=Regresar opciones gerencia onClick= window.location.href='Venta.jsp'>");
                }
            out.println("</html>");
        } finally { 
            out.close();
        }
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (SQLException ex) {
            Logger.getLogger(validaventa.class.getName()).log(Level.SEVERE, null, ex);
        }
    } 

    /** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (SQLException ex) {
            Logger.getLogger(validaventa.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}
